// 创建用户数据 的 数据库
// 1.引包
var mongoose = require("mongoose");

// 连接数据库   数据库名称为：blog
/* mongoose.connect("mongodb://localhost/blog", {
  useMongoClient: true,
}); */

// 关于数据库连接
mongoose
  .connect("mongodb://localhost/blog", {
    useUnifiedTopology: true,
    useNewUrlParser: true,
  })
  .then(() => console.log("数据库连接成功"))
  .catch((err) => console.log(err, "数据库连接失败"));

// 2.创建Schema 图表
var Schema = mongoose.Schema;

// 3.设计集合结构

var userSchema = new Schema({
  email: {
    type: String,
    require: true,
  },

  nickname: {
    //用户名  nickname
    type: String,
    require: true,
  },

  password: {
    type: String,
    require: true,
  },

  create_time: {
    // 创建时间
    type: Date,
    //   注意：这里不要写 Date.now() 因为会被立即调用，形成一个固定的时间
    //   这里直接给了一个方法：Date.now  只有当传递create_time时，才形成时间
    default: Date.now,
  },

  last_modified_time: {
    // 修改时间
    type: Date,
    default: Date.now,
  },

  avatar: {
    // 默认头像
    type: String,
    default: "../public/img/k16.jpeg",
  },

  bio: {
    // 个人介绍
    type: String,
    // 给一个默认的值空字符串，保证数据的完整性
    default: "",
  },

  gender: {
    type: Number,
    enum: [0, 1], //1 代表男  0 代表女
    default: 1, //默认值是0
  },

  birthday: {
    type: Date,
  },

  status: {
    // 用户状态
    type: Number,
    //0 代表 没有权限设置，1 代表不能评论，-1 代表 不能登录
    enum: [-1, 0, 1],
    default: 0,
  },
});

// 5.将文档结构发布为模型

module.exports = mongoose.model("User", userSchema);
